<!doctype html>
<html lang="en">
<head>
    <title>Code coverage report for fe-train-resource/js/marked.js</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="../../prettify.css" />
    <link rel="stylesheet" href="../../base.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style type='text/css'>
        .coverage-summary .sorter {
            background-image: url(../../sort-arrow-sprite.png);
        }
    </style>
</head>
<body>
<div class='wrapper'>
  <div class='pad1'>
    <h1>
      <a href="../../index.html">All files</a> / <a href="index.html">fe-train-resource/js</a> marked.js
    </h1>
    <div class='clearfix'>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Statements</span>
        <span class='fraction'>0/479</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Branches</span>
        <span class='fraction'>0/290</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Functions</span>
        <span class='fraction'>0/51</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Lines</span>
        <span class='fraction'>0/1</span>
      </div>
    </div>
    <p class="quiet">
      Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
    </p>
  </div>
  <div class='status-line low'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >fu</span>nction(){var block=<span class="cstat-no" title="statement not covered" >{newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *&gt;[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *&lt;?([^\s&gt;]+)&gt;?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};<span class="cstat-no" title="statement not covered" ></span>block.bullet=/(?:[*+-]|\d+\.)/;<span class="cstat-no" title="statement not covered" >b</span>lock.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;<span class="cstat-no" title="statement not covered" >b</span>lock.item=replace(block.item,"gm")(/bull/g,block.bullet)();<span class="cstat-no" title="statement not covered" >b</span>lock.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();<span class="cstat-no" title="statement not covered" >b</span>lock.blockquote=replace(block.blockquote)("def",block.def)();<span class="cstat-no" title="statement not covered" >b</span>lock._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";<span class="cstat-no" title="statement not covered" >b</span>lock.html=replace(block.html)("comment",/&lt;!--[\s\S]*?--&gt;/)("closed",/&lt;(tag)[\s\S]+?&lt;\/\1&gt;/)("closing",/&lt;tag(?:"[^"]*"|'[^']*'|[^'"&gt;])*?&gt;/)(/tag/g,block._tag)();<span class="cstat-no" title="statement not covered" >b</span>lock.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","&lt;"+block._tag)("def",block.def)();<span class="cstat-no" title="statement not covered" >b</span>lock.normal=merge({},block);<span class="cstat-no" title="statement not covered" >b</span>lock.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});<span class="cstat-no" title="statement not covered" >b</span>lock.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();<span class="cstat-no" title="statement not covered" >b</span>lock.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});f</span>unction <span class="fstat-no" title="function not covered" >Lexer(</span>options){<span class="cstat-no" title="statement not covered" >this.tokens=[];<span class="cstat-no" title="statement not covered" >t</span>his.tokens.links={};<span class="cstat-no" title="statement not covered" >t</span>his.options=options||marked.defaults;<span class="cstat-no" title="statement not covered" >t</span>his.rules=block.normal;<span class="cstat-no" title="statement not covered" >i</span>f(this.options.gfm){<span class="cstat-no" title="statement not covered" >if(this.options.tables){<span class="cstat-no" title="statement not covered" >this.rules=block.tables}</span>else{<span class="cstat-no" title="statement not covered" >this.rules=block.gfm}</span>}</span>}<span class="cstat-no" title="statement not covered" ></span>Lexer.rules=block;<span class="cstat-no" title="statement not covered" >L</span>exer.lex=<span class="fstat-no" title="function not covered" >fu</span>nction(src,options){var lexer=<span class="cstat-no" title="statement not covered" >new Lexer(options);<span class="cstat-no" title="statement not covered" ></span>return lexer.lex(src)}</span>;<span class="cstat-no" title="statement not covered" >L</span>exer.prototype.lex=<span class="fstat-no" title="function not covered" >fu</span>nction(src){<span class="cstat-no" title="statement not covered" >src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");<span class="cstat-no" title="statement not covered" >r</span>eturn this.token(src,true)}</span>;<span class="cstat-no" title="statement not covered" >L</span>exer.prototype.token=<span class="fstat-no" title="function not covered" >fu</span>nction(src,top,bq){var src=<span class="cstat-no" title="statement not covered" >src.replace(/^ +$/gm,""),</span>next,loose,cap,bull,b,item,space,i,l;<span class="cstat-no" title="statement not covered" >while(src){<span class="cstat-no" title="statement not covered" >if(cap=this.rules.newline.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >i</span>f(cap[0].length&gt;1){<span class="cstat-no" title="statement not covered" >this.tokens.push({type:"space"})}</span>}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.code.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >c</span>ap=cap[0].replace(/^ {4}/gm,"");<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.fences.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"code",lang:cap[2],text:cap[3]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.heading.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(top&amp;&amp;(cap=this.rules.nptable.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >i</span>tem={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};<span class="cstat-no" title="statement not covered" >f</span>or(i=0;i&lt;item.align.length;i++){<span class="cstat-no" title="statement not covered" >if(/^ *-+: *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="right"}</span>else <span class="cstat-no" title="statement not covered" >if(/^ *:-+: *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="center"}</span>else <span class="cstat-no" title="statement not covered" >if(/^ *:-+ *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="left"}</span>else{<span class="cstat-no" title="statement not covered" >item.align[i]=null}</span>}<span class="cstat-no" title="statement not covered" ></span></span></span>f</span>or(i=0;i&lt;item.cells.length;i++){<span class="cstat-no" title="statement not covered" >item.cells[i]=item.cells[i].split(/ *\| */)}<span class="cstat-no" title="statement not covered" ></span>t</span>his.tokens.push(item);<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.lheading.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.hr.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"hr"});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.blockquote.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"blockquote_start"});<span class="cstat-no" title="statement not covered" >c</span>ap=cap[0].replace(/^ *&gt; ?/gm,"");<span class="cstat-no" title="statement not covered" >t</span>his.token(cap,top,true);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"blockquote_end"});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.list.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >b</span>ull=cap[2];<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"list_start",ordered:bull.length&gt;1});<span class="cstat-no" title="statement not covered" >c</span>ap=cap[0].match(this.rules.item);<span class="cstat-no" title="statement not covered" >n</span>ext=false;<span class="cstat-no" title="statement not covered" >l</span>=cap.length;<span class="cstat-no" title="statement not covered" >i</span>=0;<span class="cstat-no" title="statement not covered" >f</span>or(;i&lt;l;i++){<span class="cstat-no" title="statement not covered" >item=cap[i];<span class="cstat-no" title="statement not covered" >s</span>pace=item.length;<span class="cstat-no" title="statement not covered" >i</span>tem=item.replace(/^ *([*+-]|\d+\.) +/,"");<span class="cstat-no" title="statement not covered" >i</span>f(~item.indexOf("\n ")){<span class="cstat-no" title="statement not covered" >space-=item.length;<span class="cstat-no" title="statement not covered" >i</span>tem=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}<span class="cstat-no" title="statement not covered" ></span>i</span>f(this.options.smartLists&amp;&amp;i!==l-1){<span class="cstat-no" title="statement not covered" >b=block.bullet.exec(cap[i+1])[0];<span class="cstat-no" title="statement not covered" >i</span>f(bull!==b&amp;&amp;!(bull.length&gt;1&amp;&amp;b.length&gt;1)){<span class="cstat-no" title="statement not covered" >src=cap.slice(i+1).join("\n")+src;<span class="cstat-no" title="statement not covered" >i</span>=l-1}</span>}<span class="cstat-no" title="statement not covered" ></span>l</span>oose=next||/\n\n(?!\s*$)/.test(item);<span class="cstat-no" title="statement not covered" >i</span>f(i!==l-1){<span class="cstat-no" title="statement not covered" >next=item.charAt(item.length-1)==="\n";<span class="cstat-no" title="statement not covered" >i</span>f(!loose)<span class="cstat-no" title="statement not covered" >loose=next}<span class="cstat-no" title="statement not covered" ></span></span>t</span>his.tokens.push({type:loose?"loose_item_start":"list_item_start"});<span class="cstat-no" title="statement not covered" >t</span>his.token(item,false,bq);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"list_item_end"})}<span class="cstat-no" title="statement not covered" ></span>t</span>his.tokens.push({type:"list_end"});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.html.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(!bq&amp;&amp;top&amp;&amp;(cap=this.rules.def.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(top&amp;&amp;(cap=this.rules.table.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >i</span>tem={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};<span class="cstat-no" title="statement not covered" >f</span>or(i=0;i&lt;item.align.length;i++){<span class="cstat-no" title="statement not covered" >if(/^ *-+: *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="right"}</span>else <span class="cstat-no" title="statement not covered" >if(/^ *:-+: *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="center"}</span>else <span class="cstat-no" title="statement not covered" >if(/^ *:-+ *$/.test(item.align[i])){<span class="cstat-no" title="statement not covered" >item.align[i]="left"}</span>else{<span class="cstat-no" title="statement not covered" >item.align[i]=null}</span>}<span class="cstat-no" title="statement not covered" ></span></span></span>f</span>or(i=0;i&lt;item.cells.length;i++){<span class="cstat-no" title="statement not covered" >item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */)}<span class="cstat-no" title="statement not covered" ></span>t</span>his.tokens.push(item);<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(top&amp;&amp;(cap=this.rules.paragraph.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"paragraph",text:cap[1].charAt(cap[1].length-1)==="\n"?cap[1].slice(0,-1):cap[1]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.text.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.tokens.push({type:"text",text:cap[0]});<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(src){<span class="cstat-no" title="statement not covered" >throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}</span>}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.tokens}</span>;v</span>ar inline=<span class="cstat-no" title="statement not covered" >{escape:/^\\([\\`*{}\[\]()#+\-.!_&gt;])/,autolink:/^&lt;([^ &gt;]+(@|:\/)[^ &gt;]+)&gt;/,url:noop,tag:/^&lt;!--[\s\S]*?--&gt;|^&lt;\/?\w+(?:"[^"]*"|'[^']*'|[^'"&gt;])*?&gt;/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\&lt;!\[_*`]| {2,}\n|$)/};<span class="cstat-no" title="statement not covered" ></span>inline._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;<span class="cstat-no" title="statement not covered" >i</span>nline._href=/\s*&lt;?([\s\S]*?)&gt;?(?:\s+['"]([\s\S]*?)['"])?\s*/;<span class="cstat-no" title="statement not covered" >i</span>nline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();<span class="cstat-no" title="statement not covered" >i</span>nline.reflink=replace(inline.reflink)("inside",inline._inside)();<span class="cstat-no" title="statement not covered" >i</span>nline.normal=merge({},inline);<span class="cstat-no" title="statement not covered" >i</span>nline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});<span class="cstat-no" title="statement not covered" >i</span>nline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s&lt;]+[^&lt;.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});<span class="cstat-no" title="statement not covered" >i</span>nline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});f</span>unction <span class="fstat-no" title="function not covered" >InlineLexer(</span>links,options){<span class="cstat-no" title="statement not covered" >this.options=options||marked.defaults;<span class="cstat-no" title="statement not covered" >t</span>his.links=links;<span class="cstat-no" title="statement not covered" >t</span>his.rules=inline.normal;<span class="cstat-no" title="statement not covered" >t</span>his.renderer=this.options.renderer||new Renderer;<span class="cstat-no" title="statement not covered" >t</span>his.renderer.options=this.options;<span class="cstat-no" title="statement not covered" >i</span>f(!this.links){<span class="cstat-no" title="statement not covered" >throw new Error("Tokens array requires a `links` property.")}<span class="cstat-no" title="statement not covered" ></span>i</span>f(this.options.gfm){<span class="cstat-no" title="statement not covered" >if(this.options.breaks){<span class="cstat-no" title="statement not covered" >this.rules=inline.breaks}</span>else{<span class="cstat-no" title="statement not covered" >this.rules=inline.gfm}</span>}</span>else <span class="cstat-no" title="statement not covered" >if(this.options.pedantic){<span class="cstat-no" title="statement not covered" >this.rules=inline.pedantic}</span>}<span class="cstat-no" title="statement not covered" ></span></span>InlineLexer.rules=inline;<span class="cstat-no" title="statement not covered" >I</span>nlineLexer.output=<span class="fstat-no" title="function not covered" >fu</span>nction(src,links,options){var inline=<span class="cstat-no" title="statement not covered" >new InlineLexer(links,options);<span class="cstat-no" title="statement not covered" ></span>return inline.output(src)}</span>;<span class="cstat-no" title="statement not covered" >I</span>nlineLexer.prototype.output=<span class="fstat-no" title="function not covered" >fu</span>nction(src){var out=<span class="cstat-no" title="statement not covered" >"",</span>link,text,href,cap;<span class="cstat-no" title="statement not covered" >while(src){<span class="cstat-no" title="statement not covered" >if(cap=this.rules.escape.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=cap[1];<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.autolink.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >i</span>f(cap[2]==="@"){<span class="cstat-no" title="statement not covered" >text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);<span class="cstat-no" title="statement not covered" >h</span>ref=this.mangle("mailto:")+text}</span>else{<span class="cstat-no" title="statement not covered" >text=escape(cap[1]);<span class="cstat-no" title="statement not covered" >h</span>ref=text}<span class="cstat-no" title="statement not covered" ></span>o</span>ut+=this.renderer.link(href,null,text);<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(!this.inLink&amp;&amp;(cap=this.rules.url.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>ext=escape(cap[1]);<span class="cstat-no" title="statement not covered" >h</span>ref=text;<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.link(href,null,text);<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.tag.exec(src)){<span class="cstat-no" title="statement not covered" >if(!this.inLink&amp;&amp;/^&lt;a /i.test(cap[0])){<span class="cstat-no" title="statement not covered" >this.inLink=true}</span>else <span class="cstat-no" title="statement not covered" >if(this.inLink&amp;&amp;/^&lt;\/a&gt;/i.test(cap[0])){<span class="cstat-no" title="statement not covered" >this.inLink=false}<span class="cstat-no" title="statement not covered" ></span>s</span></span>rc=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.options.sanitize?escape(cap[0]):cap[0];<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.link.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >t</span>his.inLink=true;<span class="cstat-no" title="statement not covered" >o</span>ut+=this.outputLink(cap,{href:cap[2],title:cap[3]});<span class="cstat-no" title="statement not covered" >t</span>his.inLink=false;<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >l</span>ink=(cap[2]||cap[1]).replace(/\s+/g," ");<span class="cstat-no" title="statement not covered" >l</span>ink=this.links[link.toLowerCase()];<span class="cstat-no" title="statement not covered" >i</span>f(!link||!link.href){<span class="cstat-no" title="statement not covered" >out+=cap[0].charAt(0);<span class="cstat-no" title="statement not covered" >s</span>rc=cap[0].substring(1)+src;<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>t</span>his.inLink=true;<span class="cstat-no" title="statement not covered" >o</span>ut+=this.outputLink(cap,link);<span class="cstat-no" title="statement not covered" >t</span>his.inLink=false;<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.strong.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.strong(this.output(cap[2]||cap[1]));<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.em.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.em(this.output(cap[2]||cap[1]));<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.code.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.codespan(escape(cap[2],true));<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.br.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.br();<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.del.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=this.renderer.del(this.output(cap[1]));<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(cap=this.rules.text.exec(src)){<span class="cstat-no" title="statement not covered" >src=src.substring(cap[0].length);<span class="cstat-no" title="statement not covered" >o</span>ut+=escape(this.smartypants(cap[0]));<span class="cstat-no" title="statement not covered" >c</span>ontinue}<span class="cstat-no" title="statement not covered" ></span>i</span>f(src){<span class="cstat-no" title="statement not covered" >throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}</span>}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn out}</span>;<span class="cstat-no" title="statement not covered" >I</span>nlineLexer.prototype.outputLink=<span class="fstat-no" title="function not covered" >fu</span>nction(cap,link){var href=<span class="cstat-no" title="statement not covered" >escape(link.href),</span>title=<span class="cstat-no" title="statement not covered" >link.title?escape(link.title):null;<span class="cstat-no" title="statement not covered" ></span>return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))}</span>;<span class="cstat-no" title="statement not covered" >I</span>nlineLexer.prototype.smartypants=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >if(!this.options.smartypants)<span class="cstat-no" title="statement not covered" >return text;<span class="cstat-no" title="statement not covered" >r</span></span>eturn text.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}</span>;<span class="cstat-no" title="statement not covered" >I</span>nlineLexer.prototype.mangle=<span class="fstat-no" title="function not covered" >fu</span>nction(text){var out=<span class="cstat-no" title="statement not covered" >"",</span>l=<span class="cstat-no" title="statement not covered" >text.length,</span>i=<span class="cstat-no" title="statement not covered" >0,</span>ch;<span class="cstat-no" title="statement not covered" >for(;i&lt;l;i++){<span class="cstat-no" title="statement not covered" >ch=text.charCodeAt(i);<span class="cstat-no" title="statement not covered" >i</span>f(Math.random()&gt;.5){<span class="cstat-no" title="statement not covered" >ch="x"+ch.toString(16)}<span class="cstat-no" title="statement not covered" ></span>o</span>ut+="&amp;#"+ch+";"}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn out}</span>;f</span>unction <span class="fstat-no" title="function not covered" >Renderer(</span>options){<span class="cstat-no" title="statement not covered" >this.options=options||{}}<span class="cstat-no" title="statement not covered" ></span>Renderer.prototype.code=<span class="fstat-no" title="function not covered" >fu</span>nction(code,lang,escaped){<span class="cstat-no" title="statement not covered" >if(this.options.highlight){var out=<span class="cstat-no" title="statement not covered" >this.options.highlight(code,lang);<span class="cstat-no" title="statement not covered" ></span>if(out!=null&amp;&amp;out!==code){<span class="cstat-no" title="statement not covered" >escaped=true;<span class="cstat-no" title="statement not covered" >c</span>ode=out}</span>}<span class="cstat-no" title="statement not covered" ></span>i</span>f(!lang){<span class="cstat-no" title="statement not covered" >return"&lt;pre&gt;&lt;code&gt;"+(escaped?code:escape(code,true))+"\n&lt;/code&gt;&lt;/pre&gt;"}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn'&lt;pre&gt;&lt;code class="'+this.options.langPrefix+escape(lang,true)+'"&gt;'+(escaped?code:escape(code,true))+"\n&lt;/code&gt;&lt;/pre&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.blockquote=<span class="fstat-no" title="function not covered" >fu</span>nction(quote){<span class="cstat-no" title="statement not covered" >return"&lt;blockquote&gt;\n"+quote+"&lt;/blockquote&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.html=<span class="fstat-no" title="function not covered" >fu</span>nction(html){<span class="cstat-no" title="statement not covered" >return html}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.heading=<span class="fstat-no" title="function not covered" >fu</span>nction(text,level,raw){<span class="cstat-no" title="statement not covered" >return"&lt;h"+level+' id="'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\w]+/g,"-")+'"&gt;'+text+"&lt;/h"+level+"&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.hr=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return this.options.xhtml?"&lt;hr/&gt;\n":"&lt;hr&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.list=<span class="fstat-no" title="function not covered" >fu</span>nction(body,ordered){var type=<span class="cstat-no" title="statement not covered" >ordered?"ol":"ul";<span class="cstat-no" title="statement not covered" ></span>return"&lt;"+type+"&gt;\n"+body+"&lt;/"+type+"&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.listitem=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;li&gt;"+text+"&lt;/li&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.paragraph=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;p&gt;"+text+"&lt;/p&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.table=<span class="fstat-no" title="function not covered" >fu</span>nction(header,body){<span class="cstat-no" title="statement not covered" >return"&lt;table&gt;\n"+"&lt;thead&gt;\n"+header+"&lt;/thead&gt;\n"+"&lt;tbody&gt;\n"+body+"&lt;/tbody&gt;\n"+"&lt;/table&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.tablerow=<span class="fstat-no" title="function not covered" >fu</span>nction(content){<span class="cstat-no" title="statement not covered" >return"&lt;tr&gt;\n"+content+"&lt;/tr&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.tablecell=<span class="fstat-no" title="function not covered" >fu</span>nction(content,flags){var type=<span class="cstat-no" title="statement not covered" >flags.header?"th":"td";</span>var tag=<span class="cstat-no" title="statement not covered" >flags.align?"&lt;"+type+' style="text-align:'+flags.align+'"&gt;':"&lt;"+type+"&gt;";<span class="cstat-no" title="statement not covered" ></span>return tag+content+"&lt;/"+type+"&gt;\n"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.strong=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;strong&gt;"+text+"&lt;/strong&gt;"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.em=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;em&gt;"+text+"&lt;/em&gt;"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.codespan=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;code&gt;"+text+"&lt;/code&gt;"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.br=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return this.options.xhtml?"&lt;br/&gt;":"&lt;br&gt;"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.del=<span class="fstat-no" title="function not covered" >fu</span>nction(text){<span class="cstat-no" title="statement not covered" >return"&lt;del&gt;"+text+"&lt;/del&gt;"}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.link=<span class="fstat-no" title="function not covered" >fu</span>nction(href,title,text){<span class="cstat-no" title="statement not covered" >if(this.options.sanitize){<span class="cstat-no" title="statement not covered" >try{var prot=<span class="cstat-no" title="statement not covered" >decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}</span>catch(e){<span class="cstat-no" title="statement not covered" >return""}<span class="cstat-no" title="statement not covered" ></span>i</span>f(prot.indexOf("javascript:")===0){<span class="cstat-no" title="statement not covered" >return""}</span>}</span>v</span>ar out=<span class="cstat-no" title="statement not covered" >'&lt;a href="'+href+'"';<span class="cstat-no" title="statement not covered" ></span>if(title){<span class="cstat-no" title="statement not covered" >out+=' title="'+title+'"'}<span class="cstat-no" title="statement not covered" ></span>o</span>ut+="&gt;"+text+"&lt;/a&gt;";<span class="cstat-no" title="statement not covered" >r</span>eturn out}</span>;<span class="cstat-no" title="statement not covered" >R</span>enderer.prototype.image=<span class="fstat-no" title="function not covered" >fu</span>nction(href,title,text){var out=<span class="cstat-no" title="statement not covered" >'&lt;img src="'+href+'" alt="'+text+'"';<span class="cstat-no" title="statement not covered" ></span>if(title){<span class="cstat-no" title="statement not covered" >out+=' title="'+title+'"'}<span class="cstat-no" title="statement not covered" ></span>o</span>ut+=this.options.xhtml?"/&gt;":"&gt;";<span class="cstat-no" title="statement not covered" >r</span>eturn out}</span>;f</span>unction <span class="fstat-no" title="function not covered" >Parser(</span>options){<span class="cstat-no" title="statement not covered" >this.tokens=[];<span class="cstat-no" title="statement not covered" >t</span>his.token=null;<span class="cstat-no" title="statement not covered" >t</span>his.options=options||marked.defaults;<span class="cstat-no" title="statement not covered" >t</span>his.options.renderer=this.options.renderer||new Renderer;<span class="cstat-no" title="statement not covered" >t</span>his.renderer=this.options.renderer;<span class="cstat-no" title="statement not covered" >t</span>his.renderer.options=this.options}<span class="cstat-no" title="statement not covered" ></span>Parser.parse=<span class="fstat-no" title="function not covered" >fu</span>nction(src,options,renderer){var parser=<span class="cstat-no" title="statement not covered" >new Parser(options,renderer);<span class="cstat-no" title="statement not covered" ></span>return parser.parse(src)}</span>;<span class="cstat-no" title="statement not covered" >P</span>arser.prototype.parse=<span class="fstat-no" title="function not covered" >fu</span>nction(src){<span class="cstat-no" title="statement not covered" >this.inline=new InlineLexer(src.links,this.options,this.renderer);<span class="cstat-no" title="statement not covered" >t</span>his.tokens=src.reverse();v</span>ar out=<span class="cstat-no" title="statement not covered" >"";<span class="cstat-no" title="statement not covered" ></span>while(this.next()){<span class="cstat-no" title="statement not covered" >out+=this.tok()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn out}</span>;<span class="cstat-no" title="statement not covered" >P</span>arser.prototype.next=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return this.token=this.tokens.pop()}</span>;<span class="cstat-no" title="statement not covered" >P</span>arser.prototype.peek=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return this.tokens[this.tokens.length-1]||0}</span>;<span class="cstat-no" title="statement not covered" >P</span>arser.prototype.parseText=<span class="fstat-no" title="function not covered" >fu</span>nction(){var body=<span class="cstat-no" title="statement not covered" >this.token.text;<span class="cstat-no" title="statement not covered" ></span>while(this.peek().type==="text"){<span class="cstat-no" title="statement not covered" >body+="\n"+this.next().text}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.inline.output(body)}</span>;<span class="cstat-no" title="statement not covered" >P</span>arser.prototype.tok=<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >switch(this.token.type){case"space":{<span class="cstat-no" title="statement not covered" >return""}</span>case"hr":{<span class="cstat-no" title="statement not covered" >return this.renderer.hr()}</span>case"heading":{<span class="cstat-no" title="statement not covered" >return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}</span>case"code":{<span class="cstat-no" title="statement not covered" >return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}</span>case"table":{var header=<span class="cstat-no" title="statement not covered" >"",</span>body=<span class="cstat-no" title="statement not covered" >"",</span>i,row,cell,flags,j;<span class="cstat-no" title="statement not covered" >cell="";<span class="cstat-no" title="statement not covered" >f</span>or(i=0;i&lt;this.token.header.length;i++){<span class="cstat-no" title="statement not covered" >flags={header:true,align:this.token.align[i]};<span class="cstat-no" title="statement not covered" >c</span>ell+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]})}<span class="cstat-no" title="statement not covered" ></span>h</span>eader+=this.renderer.tablerow(cell);<span class="cstat-no" title="statement not covered" >f</span>or(i=0;i&lt;this.token.cells.length;i++){<span class="cstat-no" title="statement not covered" >row=this.token.cells[i];<span class="cstat-no" title="statement not covered" >c</span>ell="";<span class="cstat-no" title="statement not covered" >f</span>or(j=0;j&lt;row.length;j++){<span class="cstat-no" title="statement not covered" >cell+=this.renderer.tablecell(this.inline.output(row[j]),{header:false,align:this.token.align[j]})}<span class="cstat-no" title="statement not covered" ></span>b</span>ody+=this.renderer.tablerow(cell)}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.renderer.table(header,body)}</span>case"blockquote_start":{var body=<span class="cstat-no" title="statement not covered" >"";<span class="cstat-no" title="statement not covered" ></span>while(this.next().type!=="blockquote_end"){<span class="cstat-no" title="statement not covered" >body+=this.tok()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.renderer.blockquote(body)}</span>case"list_start":{var body=<span class="cstat-no" title="statement not covered" >"",</span>ordered=<span class="cstat-no" title="statement not covered" >this.token.ordered;<span class="cstat-no" title="statement not covered" ></span>while(this.next().type!=="list_end"){<span class="cstat-no" title="statement not covered" >body+=this.tok()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.renderer.list(body,ordered)}</span>case"list_item_start":{var body=<span class="cstat-no" title="statement not covered" >"";<span class="cstat-no" title="statement not covered" ></span>while(this.next().type!=="list_item_end"){<span class="cstat-no" title="statement not covered" >body+=this.token.type==="text"?this.parseText():this.tok()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.renderer.listitem(body)}</span>case"loose_item_start":{var body=<span class="cstat-no" title="statement not covered" >"";<span class="cstat-no" title="statement not covered" ></span>while(this.next().type!=="list_item_end"){<span class="cstat-no" title="statement not covered" >body+=this.tok()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn this.renderer.listitem(body)}</span>case"html":{var html=<span class="cstat-no" title="statement not covered" >!this.token.pre&amp;&amp;!this.options.pedantic?this.inline.output(this.token.text):this.token.text;<span class="cstat-no" title="statement not covered" ></span>return this.renderer.html(html)}</span>case"paragraph":{<span class="cstat-no" title="statement not covered" >return this.renderer.paragraph(this.inline.output(this.token.text))}</span>case"text":{<span class="cstat-no" title="statement not covered" >return this.renderer.paragraph(this.parseText())}</span>}}</span>;f</span>unction <span class="fstat-no" title="function not covered" >escape(</span>html,encode){<span class="cstat-no" title="statement not covered" >return html.replace(!encode?/&amp;(?!#?\w+;)/g:/&amp;/g,"&amp;amp;").replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/"/g,"&amp;quot;").replace(/'/g,"&amp;#39;")}</span>function <span class="fstat-no" title="function not covered" >unescape(</span>html){<span class="cstat-no" title="statement not covered" >return html.replace(/&amp;([#\w]+);/g,<span class="fstat-no" title="function not covered" >fu</span>nction(_,n){<span class="cstat-no" title="statement not covered" >n=n.toLowerCase();<span class="cstat-no" title="statement not covered" >i</span>f(n==="colon")<span class="cstat-no" title="statement not covered" >return":";<span class="cstat-no" title="statement not covered" >i</span></span>f(n.charAt(0)==="#"){<span class="cstat-no" title="statement not covered" >return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn""}</span>)}</span>function <span class="fstat-no" title="function not covered" >replace(</span>regex,opt){<span class="cstat-no" title="statement not covered" >regex=regex.source;<span class="cstat-no" title="statement not covered" >o</span>pt=opt||"";<span class="cstat-no" title="statement not covered" >r</span>eturn function <span class="fstat-no" title="function not covered" >self(</span>name,val){<span class="cstat-no" title="statement not covered" >if(!name)<span class="cstat-no" title="statement not covered" >return new RegExp(regex,opt);<span class="cstat-no" title="statement not covered" >v</span></span>al=val.source||val;<span class="cstat-no" title="statement not covered" >v</span>al=val.replace(/(^|[^\[])\^/g,"$1");<span class="cstat-no" title="statement not covered" >r</span>egex=regex.replace(name,val);<span class="cstat-no" title="statement not covered" >r</span>eturn self}</span>}</span>function <span class="fstat-no" title="function not covered" >noop(</span>){}<span class="cstat-no" title="statement not covered" >noop.exec=noop;f</span>unction <span class="fstat-no" title="function not covered" >merge(</span>obj){var i=<span class="cstat-no" title="statement not covered" >1,</span>target,key;<span class="cstat-no" title="statement not covered" >for(;i&lt;arguments.length;i++){<span class="cstat-no" title="statement not covered" >target=arguments[i];<span class="cstat-no" title="statement not covered" >f</span>or(key in target){<span class="cstat-no" title="statement not covered" >if(Object.prototype.hasOwnProperty.call(target,key)){<span class="cstat-no" title="statement not covered" >obj[key]=target[key]}</span>}</span>}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn obj}</span>function <span class="fstat-no" title="function not covered" >marked(</span>src,opt,callback){<span class="cstat-no" title="statement not covered" >if(callback||typeof opt==="function"){<span class="cstat-no" title="statement not covered" >if(!callback){<span class="cstat-no" title="statement not covered" >callback=opt;<span class="cstat-no" title="statement not covered" >o</span>pt=null}<span class="cstat-no" title="statement not covered" ></span>o</span>pt=merge({},marked.defaults,opt||{});v</span>ar highlight=<span class="cstat-no" title="statement not covered" >opt.highlight,</span>tokens,pending,i=<span class="cstat-no" title="statement not covered" >0;<span class="cstat-no" title="statement not covered" ></span>try{<span class="cstat-no" title="statement not covered" >tokens=Lexer.lex(src,opt)}</span>catch(e){<span class="cstat-no" title="statement not covered" >return callback(e)}<span class="cstat-no" title="statement not covered" ></span>p</span>ending=tokens.length;v</span>ar done=<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >fu</span>nction(err){<span class="cstat-no" title="statement not covered" >if(err){<span class="cstat-no" title="statement not covered" >opt.highlight=highlight;<span class="cstat-no" title="statement not covered" >r</span>eturn callback(err)}</span>v</span>ar out;<span class="cstat-no" title="statement not covered" >try{<span class="cstat-no" title="statement not covered" >out=Parser.parse(tokens,opt)}</span>catch(e){<span class="cstat-no" title="statement not covered" >err=e}<span class="cstat-no" title="statement not covered" ></span>o</span>pt.highlight=highlight;<span class="cstat-no" title="statement not covered" >r</span>eturn err?callback(err):callback(null,out)}</span>;<span class="cstat-no" title="statement not covered" ></span>if(!highlight||highlight.length&lt;3){<span class="cstat-no" title="statement not covered" >return done()}<span class="cstat-no" title="statement not covered" ></span>d</span>elete opt.highlight;<span class="cstat-no" title="statement not covered" >i</span>f(!pending)<span class="cstat-no" title="statement not covered" >return done();<span class="cstat-no" title="statement not covered" >f</span></span>or(;i&lt;tokens.length;i++){<span class="cstat-no" title="statement not covered" >(<span class="fstat-no" title="function not covered" >fu</span>nction(token){<span class="cstat-no" title="statement not covered" >if(token.type!=="code"){<span class="cstat-no" title="statement not covered" >return--pending||done()}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn highlight(token.text,token.lang,<span class="fstat-no" title="function not covered" >fu</span>nction(err,code){<span class="cstat-no" title="statement not covered" >if(err)<span class="cstat-no" title="statement not covered" >return done(err);<span class="cstat-no" title="statement not covered" >i</span></span>f(code==null||code===token.text){<span class="cstat-no" title="statement not covered" >return--pending||done()}<span class="cstat-no" title="statement not covered" ></span>t</span>oken.text=code;<span class="cstat-no" title="statement not covered" >t</span>oken.escaped=true;<span class="cstat-no" title="statement not covered" >-</span>-pending||done()}</span>)}</span>)(tokens[i])}<span class="cstat-no" title="statement not covered" ></span>r</span>eturn}<span class="cstat-no" title="statement not covered" ></span>t</span>ry{<span class="cstat-no" title="statement not covered" >if(opt)<span class="cstat-no" title="statement not covered" >opt=merge({},marked.defaults,opt);<span class="cstat-no" title="statement not covered" >r</span></span>eturn Parser.parse(Lexer.lex(src,opt),opt)}</span>catch(e){<span class="cstat-no" title="statement not covered" >e.message+="\nPlease report this to https://github.com/chjj/marked.";<span class="cstat-no" title="statement not covered" >i</span>f((opt||marked.defaults).silent){<span class="cstat-no" title="statement not covered" >return"&lt;p&gt;An error occured:&lt;/p&gt;&lt;pre&gt;"+escape(e.message+"",true)+"&lt;/pre&gt;"}<span class="cstat-no" title="statement not covered" ></span>t</span>hrow e}</span>}<span class="cstat-no" title="statement not covered" ></span>marked.options=marked.setOptions=<span class="fstat-no" title="function not covered" >fu</span>nction(opt){<span class="cstat-no" title="statement not covered" >merge(marked.defaults,opt);<span class="cstat-no" title="statement not covered" >r</span>eturn marked}</span>;<span class="cstat-no" title="statement not covered" >m</span>arked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};<span class="cstat-no" title="statement not covered" >m</span>arked.Parser=Parser;<span class="cstat-no" title="statement not covered" >m</span>arked.parser=Parser.parse;<span class="cstat-no" title="statement not covered" >m</span>arked.Renderer=Renderer;<span class="cstat-no" title="statement not covered" >m</span>arked.Lexer=Lexer;<span class="cstat-no" title="statement not covered" >m</span>arked.lexer=Lexer.lex;<span class="cstat-no" title="statement not covered" >m</span>arked.InlineLexer=InlineLexer;<span class="cstat-no" title="statement not covered" >m</span>arked.inlineLexer=InlineLexer.output;<span class="cstat-no" title="statement not covered" >m</span>arked.parse=marked;<span class="cstat-no" title="statement not covered" >i</span>f(typeof module!=="undefined"&amp;&amp;typeof exports==="object"){<span class="cstat-no" title="statement not covered" >module.exports=marked}</span>else <span class="cstat-no" title="statement not covered" >if(typeof define==="function"&amp;&amp;define.amd){<span class="cstat-no" title="statement not covered" >define(<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return marked}</span>)}</span>else{<span class="cstat-no" title="statement not covered" >this.marked=marked}</span>}</span></span>).call(<span class="fstat-no" title="function not covered" >fu</span>nction(){<span class="cstat-no" title="statement not covered" >return this||(typeof window!=="undefined"?window:global)}</span>());</span></pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
  Code coverage
  generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Aug 20 2018 02:12:52 GMT+0800 (CST)
</div>
</div>
<script src="../../prettify.js"></script>
<script>
window.onload = function () {
        if (typeof prettyPrint === 'function') {
            prettyPrint();
        }
};
</script>
<script src="../../sorter.js"></script>
<script src="../../block-navigation.js"></script>
</body>
</html>
